2023/12/231331字符
计算数组中,最大连续增长子序列的长度
// 1 2 3 4 1 2 3 4 5 1 2 3
// 1 2 3 4 1 2 3
// 1 2 3 4 5
var arr = [1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 15, 157];
function getMaxLenth (arr) {
var addNum = 1, len = null;
for (var i = 1; i < arr.length; i ++) {
if (arr[i] > arr[i - 1]) {
addNum ++;
}else {
len = addNum > len ? addNum : len;
addNum = 1; // 记录下个序列的增长次数,需要重新开始
}
}
len = addNum > len ? addNum : len; // 保证代码如果不走else的时候,len值也会再次计算一下
return len;
}
getMaxLenth(arr); //--> 5
接着来优化一下
function getMaxLenth (arr) {
var addNum = 1, len = null;
// 循环会走一次,走到 length。而 arr[length] = undefined。那if条件必然为 false。所以 else 最后会再走一次
for (var i = 1; i < arr.length + 1; i ++) {
if (arr[i] > arr[i - 1]) {
addNum ++;
}else {
len = addNum > len ? addNum : len;
addNum = 1;
}
}
return len;
}